package ForParser;

import java.util.ArrayList;
import java.util.StringTokenizer;

import objects.Mot;

import DB.BddManager;

public class Cleaner {
	private ArrayList<String> listeNomFichier;
	private String pathDossier;
	private BddManager dbManager;

	private ArrayList<String> listeDeMotASuppr;

	//on met dans une liste tous les mots de la stopliste OK
	//parcours cette liste
	//pour chaque mot de cette liste
	//suppr dans la base de donnee ce mot

	/**
	 * Constructeur : permet de faire du nettoyage dans la bdd
	 * @param listeNomFichier liste de fichiers de mots a supprimer dans la base de donnee
	 * @param pathDossier path du dossier contenant les fichiers a convertir en String
	 */
	public Cleaner(ArrayList<String> listeNomFichier,String pathDossier ){
		this.listeNomFichier = listeNomFichier;
		this.pathDossier = pathDossier;
		this.dbManager = BddManager.getInstance();

		this.listeDeMotASuppr = new ArrayList<String>();
	}

	/**
	 * Remplit la liste de mot a supprimer (liste listeDeMotASuppr, attribut de Cleaner)
	 */
	private void fillListeDeMotASuppr(){
		for (String i : this.listeNomFichier){
			Convertisseur c = new Convertisseur(this.pathDossier);
			String fichierToString = c.stringFromDocument(i);
			StringTokenizer st = new StringTokenizer(fichierToString);
			while (st.hasMoreTokens()) {
				this.listeDeMotASuppr.add(st.nextToken());
			}
		}
	}

	public ArrayList<String> getListeDeMotASuppr() {
		return listeDeMotASuppr;
	}
	
	/**
	 * Nettoie la base de donnee des mots present dans l'attribut listeDeMotASuppr
	 */
	public void cleanDB(){
		this.fillListeDeMotASuppr();
		for(String i : this.listeDeMotASuppr){
			this.dbManager.supprimerMot(i);
		}
	}
}
